{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Week 1 homework\n",
    "Capital Bikeshare 共享自行车数据 ---- 线性回归"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "导入工具包"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import numpy as np # lnumpy（Numerical Python）提供了python对多维数组对象的支持\n",
    "import pandas as pd # Python Data Analysis Library 或 pandas 是基于NumPy 的一种工具 纳入了大量库和一些标准的数据模型，提供了高效地操作大型数据集所需的工具\n",
    "import matplotlib.pyplot as plt # #画图\n",
    "import seaborn as sns #matplotlib的基础上进行了更高级的API封装，从而使得作图更加容易\n",
    "from sklearn.metrics import r2_score  #评价回归预测模型的性能\n",
    "from sklearn.linear_model import  RidgeCV #岭回归模型\n",
    "from sklearn.linear_model import LassoCV #Lasso回归模型\n",
    "from sklearn.preprocessing import MinMaxScaler #归一化方法\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "导入数据"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>instant</th>\n",
       "      <th>dteday</th>\n",
       "      <th>season</th>\n",
       "      <th>yr</th>\n",
       "      <th>mnth</th>\n",
       "      <th>holiday</th>\n",
       "      <th>weekday</th>\n",
       "      <th>workingday</th>\n",
       "      <th>weathersit</th>\n",
       "      <th>temp</th>\n",
       "      <th>atemp</th>\n",
       "      <th>hum</th>\n",
       "      <th>windspeed</th>\n",
       "      <th>casual</th>\n",
       "      <th>registered</th>\n",
       "      <th>cnt</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>2011-01-01</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>6</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>0.344167</td>\n",
       "      <td>0.363625</td>\n",
       "      <td>0.805833</td>\n",
       "      <td>0.160446</td>\n",
       "      <td>331</td>\n",
       "      <td>654</td>\n",
       "      <td>985</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>2011-01-02</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>0.363478</td>\n",
       "      <td>0.353739</td>\n",
       "      <td>0.696087</td>\n",
       "      <td>0.248539</td>\n",
       "      <td>131</td>\n",
       "      <td>670</td>\n",
       "      <td>801</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>2011-01-03</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0.196364</td>\n",
       "      <td>0.189405</td>\n",
       "      <td>0.437273</td>\n",
       "      <td>0.248309</td>\n",
       "      <td>120</td>\n",
       "      <td>1229</td>\n",
       "      <td>1349</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>2011-01-04</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0.200000</td>\n",
       "      <td>0.212122</td>\n",
       "      <td>0.590435</td>\n",
       "      <td>0.160296</td>\n",
       "      <td>108</td>\n",
       "      <td>1454</td>\n",
       "      <td>1562</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>2011-01-05</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0.226957</td>\n",
       "      <td>0.229270</td>\n",
       "      <td>0.436957</td>\n",
       "      <td>0.186900</td>\n",
       "      <td>82</td>\n",
       "      <td>1518</td>\n",
       "      <td>1600</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   instant      dteday  season  yr  mnth  holiday  weekday  workingday  \\\n",
       "0        1  2011-01-01       1   0     1        0        6           0   \n",
       "1        2  2011-01-02       1   0     1        0        0           0   \n",
       "2        3  2011-01-03       1   0     1        0        1           1   \n",
       "3        4  2011-01-04       1   0     1        0        2           1   \n",
       "4        5  2011-01-05       1   0     1        0        3           1   \n",
       "\n",
       "   weathersit      temp     atemp       hum  windspeed  casual  registered  \\\n",
       "0           2  0.344167  0.363625  0.805833   0.160446     331         654   \n",
       "1           2  0.363478  0.353739  0.696087   0.248539     131         670   \n",
       "2           1  0.196364  0.189405  0.437273   0.248309     120        1229   \n",
       "3           1  0.200000  0.212122  0.590435   0.160296     108        1454   \n",
       "4           1  0.226957  0.229270  0.436957   0.186900      82        1518   \n",
       "\n",
       "    cnt  \n",
       "0   985  \n",
       "1   801  \n",
       "2  1349  \n",
       "3  1562  \n",
       "4  1600  "
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "AllData = pd.read_csv(\"./Bike-Sharing-Dataset/day.csv\")\n",
    "AllData.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "作业要求：1.训练数据和测试数据分割(请将 2012 年的数据作为测试数据).\n",
    "                   2.蓝色标记的后三个特征均为要预测的 y,作业里只需对 cnt 进行预测"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#分割数据\n",
    "TrainData = AllData[AllData.yr==0]\n",
    "TestData =  AllData[AllData.yr==1]\n",
    "#分离特征值与预测值\n",
    "XTrainData = TrainData.drop(['casual','registered','cnt'], axis=1)\n",
    "YTrainData = TrainData['cnt'].values\n",
    "XTestData = TestData.drop(['casual','registered','cnt'], axis=1)\n",
    "YTestData = TestData['cnt'].values"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "作业要求：3.适当的特征工程(及数据探索) \n",
    "                      数值型特征归一化\n",
    "                      丢弃一些不必要的特征"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "特征数据中有以下一些：\n",
    "Instant:记录号\n",
    "Dteday:日期\n",
    "Season:季节\n",
    "yr:年份\n",
    "mnth:月份\n",
    "holiday:是否是节假日\n",
    "weekday:星期中的哪天,取值为 0~6\n",
    "workingday:是否工作日\n",
    "weathersit:天气\n",
    "emp:气温摄氏度\n",
    "atemp:体感温度\n",
    "hum:湿度\n",
    "windspeed:风速\n",
    "经分析:Instant,yr两个特征对于训练完全无用,Dteday也没有太大用处,且没有想到好的方法进行特征编码,所以决定将这三个数据丢弃"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "XTrainData = XTrainData.drop(['instant','dteday','yr'], axis=1)\n",
    "XTestData = XTestData.drop(['instant','dteday','yr'], axis=1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "查看数据基本信息"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>season</th>\n",
       "      <th>mnth</th>\n",
       "      <th>holiday</th>\n",
       "      <th>weekday</th>\n",
       "      <th>workingday</th>\n",
       "      <th>weathersit</th>\n",
       "      <th>temp</th>\n",
       "      <th>atemp</th>\n",
       "      <th>hum</th>\n",
       "      <th>windspeed</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>6</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>0.344167</td>\n",
       "      <td>0.363625</td>\n",
       "      <td>0.805833</td>\n",
       "      <td>0.160446</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>0.363478</td>\n",
       "      <td>0.353739</td>\n",
       "      <td>0.696087</td>\n",
       "      <td>0.248539</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0.196364</td>\n",
       "      <td>0.189405</td>\n",
       "      <td>0.437273</td>\n",
       "      <td>0.248309</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0.200000</td>\n",
       "      <td>0.212122</td>\n",
       "      <td>0.590435</td>\n",
       "      <td>0.160296</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0.226957</td>\n",
       "      <td>0.229270</td>\n",
       "      <td>0.436957</td>\n",
       "      <td>0.186900</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   season  mnth  holiday  weekday  workingday  weathersit      temp     atemp  \\\n",
       "0       1     1        0        6           0           2  0.344167  0.363625   \n",
       "1       1     1        0        0           0           2  0.363478  0.353739   \n",
       "2       1     1        0        1           1           1  0.196364  0.189405   \n",
       "3       1     1        0        2           1           1  0.200000  0.212122   \n",
       "4       1     1        0        3           1           1  0.226957  0.229270   \n",
       "\n",
       "        hum  windspeed  \n",
       "0  0.805833   0.160446  \n",
       "1  0.696087   0.248539  \n",
       "2  0.437273   0.248309  \n",
       "3  0.590435   0.160296  \n",
       "4  0.436957   0.186900  "
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "XTrainData.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "Int64Index: 365 entries, 0 to 364\n",
      "Data columns (total 10 columns):\n",
      "season        365 non-null int64\n",
      "mnth          365 non-null int64\n",
      "holiday       365 non-null int64\n",
      "weekday       365 non-null int64\n",
      "workingday    365 non-null int64\n",
      "weathersit    365 non-null int64\n",
      "temp          365 non-null float64\n",
      "atemp         365 non-null float64\n",
      "hum           365 non-null float64\n",
      "windspeed     365 non-null float64\n",
      "dtypes: float64(4), int64(6)\n",
      "memory usage: 31.4 KB\n"
     ]
    }
   ],
   "source": [
    "XTrainData.info() "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(365, 10)"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "XTrainData.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "season        0\n",
       "mnth          0\n",
       "holiday       0\n",
       "weekday       0\n",
       "workingday    0\n",
       "weathersit    0\n",
       "temp          0\n",
       "atemp         0\n",
       "hum           0\n",
       "windspeed     0\n",
       "dtype: int64"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "XTrainData.isnull().sum() #查看训练集中是否有空值"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>season</th>\n",
       "      <th>mnth</th>\n",
       "      <th>holiday</th>\n",
       "      <th>weekday</th>\n",
       "      <th>workingday</th>\n",
       "      <th>weathersit</th>\n",
       "      <th>temp</th>\n",
       "      <th>atemp</th>\n",
       "      <th>hum</th>\n",
       "      <th>windspeed</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>365.000000</td>\n",
       "      <td>365.000000</td>\n",
       "      <td>365.000000</td>\n",
       "      <td>365.000000</td>\n",
       "      <td>365.000000</td>\n",
       "      <td>365.000000</td>\n",
       "      <td>365.000000</td>\n",
       "      <td>365.000000</td>\n",
       "      <td>365.000000</td>\n",
       "      <td>365.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>2.498630</td>\n",
       "      <td>6.526027</td>\n",
       "      <td>0.027397</td>\n",
       "      <td>3.008219</td>\n",
       "      <td>0.684932</td>\n",
       "      <td>1.421918</td>\n",
       "      <td>0.486665</td>\n",
       "      <td>0.466835</td>\n",
       "      <td>0.643665</td>\n",
       "      <td>0.191403</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>1.110946</td>\n",
       "      <td>3.452584</td>\n",
       "      <td>0.163462</td>\n",
       "      <td>2.006155</td>\n",
       "      <td>0.465181</td>\n",
       "      <td>0.571831</td>\n",
       "      <td>0.189596</td>\n",
       "      <td>0.168836</td>\n",
       "      <td>0.148744</td>\n",
       "      <td>0.076890</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.059130</td>\n",
       "      <td>0.079070</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.022392</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>2.000000</td>\n",
       "      <td>4.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.325000</td>\n",
       "      <td>0.321954</td>\n",
       "      <td>0.538333</td>\n",
       "      <td>0.135583</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>3.000000</td>\n",
       "      <td>7.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.479167</td>\n",
       "      <td>0.472846</td>\n",
       "      <td>0.647500</td>\n",
       "      <td>0.186900</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>3.000000</td>\n",
       "      <td>10.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>5.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>0.656667</td>\n",
       "      <td>0.612379</td>\n",
       "      <td>0.742083</td>\n",
       "      <td>0.235075</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>4.000000</td>\n",
       "      <td>12.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>6.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>0.849167</td>\n",
       "      <td>0.840896</td>\n",
       "      <td>0.972500</td>\n",
       "      <td>0.507463</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "           season        mnth     holiday     weekday  workingday  weathersit  \\\n",
       "count  365.000000  365.000000  365.000000  365.000000  365.000000  365.000000   \n",
       "mean     2.498630    6.526027    0.027397    3.008219    0.684932    1.421918   \n",
       "std      1.110946    3.452584    0.163462    2.006155    0.465181    0.571831   \n",
       "min      1.000000    1.000000    0.000000    0.000000    0.000000    1.000000   \n",
       "25%      2.000000    4.000000    0.000000    1.000000    0.000000    1.000000   \n",
       "50%      3.000000    7.000000    0.000000    3.000000    1.000000    1.000000   \n",
       "75%      3.000000   10.000000    0.000000    5.000000    1.000000    2.000000   \n",
       "max      4.000000   12.000000    1.000000    6.000000    1.000000    3.000000   \n",
       "\n",
       "             temp       atemp         hum   windspeed  \n",
       "count  365.000000  365.000000  365.000000  365.000000  \n",
       "mean     0.486665    0.466835    0.643665    0.191403  \n",
       "std      0.189596    0.168836    0.148744    0.076890  \n",
       "min      0.059130    0.079070    0.000000    0.022392  \n",
       "25%      0.325000    0.321954    0.538333    0.135583  \n",
       "50%      0.479167    0.472846    0.647500    0.186900  \n",
       "75%      0.656667    0.612379    0.742083    0.235075  \n",
       "max      0.849167    0.840896    0.972500    0.507463  "
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "XTrainData.describe() #查看特征的统计特性"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "从上表可知\n",
    "    season,mnth,holiday,weekday,workingday,weathersit都是类别型特征，均值，分位数，方差等值并没有异常之处，不需要特殊处理\n",
    "    temp,atemp,hum,windspeed为数值型特征，需要查看数据分布，进行离群点处理，处理前先按作业要求对这四个值进行归一化"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>season</th>\n",
       "      <th>mnth</th>\n",
       "      <th>holiday</th>\n",
       "      <th>weekday</th>\n",
       "      <th>workingday</th>\n",
       "      <th>weathersit</th>\n",
       "      <th>atemp</th>\n",
       "      <th>hum</th>\n",
       "      <th>windspeed</th>\n",
       "      <th>temp</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>365.000000</td>\n",
       "      <td>365.000000</td>\n",
       "      <td>365.000000</td>\n",
       "      <td>365.000000</td>\n",
       "      <td>365.000000</td>\n",
       "      <td>365.000000</td>\n",
       "      <td>365.000000</td>\n",
       "      <td>365.000000</td>\n",
       "      <td>365.000000</td>\n",
       "      <td>365.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>2.498630</td>\n",
       "      <td>6.526027</td>\n",
       "      <td>0.027397</td>\n",
       "      <td>3.008219</td>\n",
       "      <td>0.684932</td>\n",
       "      <td>1.421918</td>\n",
       "      <td>0.466835</td>\n",
       "      <td>0.643665</td>\n",
       "      <td>0.191403</td>\n",
       "      <td>0.541158</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>1.110946</td>\n",
       "      <td>3.452584</td>\n",
       "      <td>0.163462</td>\n",
       "      <td>2.006155</td>\n",
       "      <td>0.465181</td>\n",
       "      <td>0.571831</td>\n",
       "      <td>0.168836</td>\n",
       "      <td>0.148744</td>\n",
       "      <td>0.076890</td>\n",
       "      <td>0.239983</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.079070</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.022392</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>2.000000</td>\n",
       "      <td>4.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.321954</td>\n",
       "      <td>0.538333</td>\n",
       "      <td>0.135583</td>\n",
       "      <td>0.336528</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>3.000000</td>\n",
       "      <td>7.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.472846</td>\n",
       "      <td>0.647500</td>\n",
       "      <td>0.186900</td>\n",
       "      <td>0.531667</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>3.000000</td>\n",
       "      <td>10.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>5.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>0.612379</td>\n",
       "      <td>0.742083</td>\n",
       "      <td>0.235075</td>\n",
       "      <td>0.756340</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>4.000000</td>\n",
       "      <td>12.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>6.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>0.840896</td>\n",
       "      <td>0.972500</td>\n",
       "      <td>0.507463</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "           season        mnth     holiday     weekday  workingday  weathersit  \\\n",
       "count  365.000000  365.000000  365.000000  365.000000  365.000000  365.000000   \n",
       "mean     2.498630    6.526027    0.027397    3.008219    0.684932    1.421918   \n",
       "std      1.110946    3.452584    0.163462    2.006155    0.465181    0.571831   \n",
       "min      1.000000    1.000000    0.000000    0.000000    0.000000    1.000000   \n",
       "25%      2.000000    4.000000    0.000000    1.000000    0.000000    1.000000   \n",
       "50%      3.000000    7.000000    0.000000    3.000000    1.000000    1.000000   \n",
       "75%      3.000000   10.000000    0.000000    5.000000    1.000000    2.000000   \n",
       "max      4.000000   12.000000    1.000000    6.000000    1.000000    3.000000   \n",
       "\n",
       "            atemp         hum   windspeed        temp  \n",
       "count  365.000000  365.000000  365.000000  365.000000  \n",
       "mean     0.466835    0.643665    0.191403    0.541158  \n",
       "std      0.168836    0.148744    0.076890    0.239983  \n",
       "min      0.079070    0.000000    0.022392    0.000000  \n",
       "25%      0.321954    0.538333    0.135583    0.336528  \n",
       "50%      0.472846    0.647500    0.186900    0.531667  \n",
       "75%      0.612379    0.742083    0.235075    0.756340  \n",
       "max      0.840896    0.972500    0.507463    1.000000  "
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "TempScaler = XTrainData[\"temp\"].apply(lambda x: (x - XTrainData[\"temp\"].min()) / (XTrainData[\"temp\"].max() - XTrainData[\"temp\"].min()))\n",
    "XTrainData = XTrainData.drop(\"temp\", axis=1)\n",
    "XTrainData[\"temp\"] = TempScaler\n",
    "XTrainData.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>season</th>\n",
       "      <th>mnth</th>\n",
       "      <th>holiday</th>\n",
       "      <th>weekday</th>\n",
       "      <th>workingday</th>\n",
       "      <th>weathersit</th>\n",
       "      <th>hum</th>\n",
       "      <th>windspeed</th>\n",
       "      <th>temp</th>\n",
       "      <th>atemp</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>365.000000</td>\n",
       "      <td>365.000000</td>\n",
       "      <td>365.000000</td>\n",
       "      <td>365.000000</td>\n",
       "      <td>365.000000</td>\n",
       "      <td>365.000000</td>\n",
       "      <td>365.000000</td>\n",
       "      <td>365.000000</td>\n",
       "      <td>365.000000</td>\n",
       "      <td>365.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>2.498630</td>\n",
       "      <td>6.526027</td>\n",
       "      <td>0.027397</td>\n",
       "      <td>3.008219</td>\n",
       "      <td>0.684932</td>\n",
       "      <td>1.421918</td>\n",
       "      <td>0.643665</td>\n",
       "      <td>0.191403</td>\n",
       "      <td>0.541158</td>\n",
       "      <td>0.508995</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>1.110946</td>\n",
       "      <td>3.452584</td>\n",
       "      <td>0.163462</td>\n",
       "      <td>2.006155</td>\n",
       "      <td>0.465181</td>\n",
       "      <td>0.571831</td>\n",
       "      <td>0.148744</td>\n",
       "      <td>0.076890</td>\n",
       "      <td>0.239983</td>\n",
       "      <td>0.221619</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.022392</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>2.000000</td>\n",
       "      <td>4.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.538333</td>\n",
       "      <td>0.135583</td>\n",
       "      <td>0.336528</td>\n",
       "      <td>0.318819</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>3.000000</td>\n",
       "      <td>7.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.647500</td>\n",
       "      <td>0.186900</td>\n",
       "      <td>0.531667</td>\n",
       "      <td>0.516885</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>3.000000</td>\n",
       "      <td>10.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>5.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>0.742083</td>\n",
       "      <td>0.235075</td>\n",
       "      <td>0.756340</td>\n",
       "      <td>0.700041</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>4.000000</td>\n",
       "      <td>12.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>6.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>0.972500</td>\n",
       "      <td>0.507463</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "           season        mnth     holiday     weekday  workingday  weathersit  \\\n",
       "count  365.000000  365.000000  365.000000  365.000000  365.000000  365.000000   \n",
       "mean     2.498630    6.526027    0.027397    3.008219    0.684932    1.421918   \n",
       "std      1.110946    3.452584    0.163462    2.006155    0.465181    0.571831   \n",
       "min      1.000000    1.000000    0.000000    0.000000    0.000000    1.000000   \n",
       "25%      2.000000    4.000000    0.000000    1.000000    0.000000    1.000000   \n",
       "50%      3.000000    7.000000    0.000000    3.000000    1.000000    1.000000   \n",
       "75%      3.000000   10.000000    0.000000    5.000000    1.000000    2.000000   \n",
       "max      4.000000   12.000000    1.000000    6.000000    1.000000    3.000000   \n",
       "\n",
       "              hum   windspeed        temp       atemp  \n",
       "count  365.000000  365.000000  365.000000  365.000000  \n",
       "mean     0.643665    0.191403    0.541158    0.508995  \n",
       "std      0.148744    0.076890    0.239983    0.221619  \n",
       "min      0.000000    0.022392    0.000000    0.000000  \n",
       "25%      0.538333    0.135583    0.336528    0.318819  \n",
       "50%      0.647500    0.186900    0.531667    0.516885  \n",
       "75%      0.742083    0.235075    0.756340    0.700041  \n",
       "max      0.972500    0.507463    1.000000    1.000000  "
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "AtempScaler = XTrainData[\"atemp\"].apply(lambda x: (x - XTrainData[\"atemp\"].min()) / (XTrainData[\"atemp\"].max() - XTrainData[\"atemp\"].min()))\n",
    "XTrainData = XTrainData.drop(\"atemp\", axis=1)\n",
    "XTrainData[\"atemp\"] = AtempScaler\n",
    "XTrainData.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>season</th>\n",
       "      <th>mnth</th>\n",
       "      <th>holiday</th>\n",
       "      <th>weekday</th>\n",
       "      <th>workingday</th>\n",
       "      <th>weathersit</th>\n",
       "      <th>windspeed</th>\n",
       "      <th>temp</th>\n",
       "      <th>atemp</th>\n",
       "      <th>hum</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>365.000000</td>\n",
       "      <td>365.000000</td>\n",
       "      <td>365.000000</td>\n",
       "      <td>365.000000</td>\n",
       "      <td>365.000000</td>\n",
       "      <td>365.000000</td>\n",
       "      <td>365.000000</td>\n",
       "      <td>365.000000</td>\n",
       "      <td>365.000000</td>\n",
       "      <td>365.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>2.498630</td>\n",
       "      <td>6.526027</td>\n",
       "      <td>0.027397</td>\n",
       "      <td>3.008219</td>\n",
       "      <td>0.684932</td>\n",
       "      <td>1.421918</td>\n",
       "      <td>0.191403</td>\n",
       "      <td>0.541158</td>\n",
       "      <td>0.508995</td>\n",
       "      <td>0.661866</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>1.110946</td>\n",
       "      <td>3.452584</td>\n",
       "      <td>0.163462</td>\n",
       "      <td>2.006155</td>\n",
       "      <td>0.465181</td>\n",
       "      <td>0.571831</td>\n",
       "      <td>0.076890</td>\n",
       "      <td>0.239983</td>\n",
       "      <td>0.221619</td>\n",
       "      <td>0.152950</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.022392</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>2.000000</td>\n",
       "      <td>4.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.135583</td>\n",
       "      <td>0.336528</td>\n",
       "      <td>0.318819</td>\n",
       "      <td>0.553556</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>3.000000</td>\n",
       "      <td>7.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.186900</td>\n",
       "      <td>0.531667</td>\n",
       "      <td>0.516885</td>\n",
       "      <td>0.665810</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>3.000000</td>\n",
       "      <td>10.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>5.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>0.235075</td>\n",
       "      <td>0.756340</td>\n",
       "      <td>0.700041</td>\n",
       "      <td>0.763067</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>4.000000</td>\n",
       "      <td>12.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>6.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>0.507463</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "           season        mnth     holiday     weekday  workingday  weathersit  \\\n",
       "count  365.000000  365.000000  365.000000  365.000000  365.000000  365.000000   \n",
       "mean     2.498630    6.526027    0.027397    3.008219    0.684932    1.421918   \n",
       "std      1.110946    3.452584    0.163462    2.006155    0.465181    0.571831   \n",
       "min      1.000000    1.000000    0.000000    0.000000    0.000000    1.000000   \n",
       "25%      2.000000    4.000000    0.000000    1.000000    0.000000    1.000000   \n",
       "50%      3.000000    7.000000    0.000000    3.000000    1.000000    1.000000   \n",
       "75%      3.000000   10.000000    0.000000    5.000000    1.000000    2.000000   \n",
       "max      4.000000   12.000000    1.000000    6.000000    1.000000    3.000000   \n",
       "\n",
       "        windspeed        temp       atemp         hum  \n",
       "count  365.000000  365.000000  365.000000  365.000000  \n",
       "mean     0.191403    0.541158    0.508995    0.661866  \n",
       "std      0.076890    0.239983    0.221619    0.152950  \n",
       "min      0.022392    0.000000    0.000000    0.000000  \n",
       "25%      0.135583    0.336528    0.318819    0.553556  \n",
       "50%      0.186900    0.531667    0.516885    0.665810  \n",
       "75%      0.235075    0.756340    0.700041    0.763067  \n",
       "max      0.507463    1.000000    1.000000    1.000000  "
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "HumScaler = XTrainData[\"hum\"].apply(lambda x: (x - XTrainData[\"hum\"].min()) / (XTrainData[\"hum\"].max() - XTrainData[\"hum\"].min()))\n",
    "XTrainData = XTrainData.drop(\"hum\", axis=1)\n",
    "XTrainData[\"hum\"] = HumScaler\n",
    "XTrainData.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>season</th>\n",
       "      <th>mnth</th>\n",
       "      <th>holiday</th>\n",
       "      <th>weekday</th>\n",
       "      <th>workingday</th>\n",
       "      <th>weathersit</th>\n",
       "      <th>temp</th>\n",
       "      <th>atemp</th>\n",
       "      <th>hum</th>\n",
       "      <th>windspeed</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>365.000000</td>\n",
       "      <td>365.000000</td>\n",
       "      <td>365.000000</td>\n",
       "      <td>365.000000</td>\n",
       "      <td>365.000000</td>\n",
       "      <td>365.000000</td>\n",
       "      <td>365.000000</td>\n",
       "      <td>365.000000</td>\n",
       "      <td>365.000000</td>\n",
       "      <td>365.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>2.498630</td>\n",
       "      <td>6.526027</td>\n",
       "      <td>0.027397</td>\n",
       "      <td>3.008219</td>\n",
       "      <td>0.684932</td>\n",
       "      <td>1.421918</td>\n",
       "      <td>0.541158</td>\n",
       "      <td>0.508995</td>\n",
       "      <td>0.661866</td>\n",
       "      <td>0.348425</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>1.110946</td>\n",
       "      <td>3.452584</td>\n",
       "      <td>0.163462</td>\n",
       "      <td>2.006155</td>\n",
       "      <td>0.465181</td>\n",
       "      <td>0.571831</td>\n",
       "      <td>0.239983</td>\n",
       "      <td>0.221619</td>\n",
       "      <td>0.152950</td>\n",
       "      <td>0.158513</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>2.000000</td>\n",
       "      <td>4.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.336528</td>\n",
       "      <td>0.318819</td>\n",
       "      <td>0.553556</td>\n",
       "      <td>0.233350</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>3.000000</td>\n",
       "      <td>7.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.531667</td>\n",
       "      <td>0.516885</td>\n",
       "      <td>0.665810</td>\n",
       "      <td>0.339143</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>3.000000</td>\n",
       "      <td>10.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>5.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>0.756340</td>\n",
       "      <td>0.700041</td>\n",
       "      <td>0.763067</td>\n",
       "      <td>0.438458</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>4.000000</td>\n",
       "      <td>12.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>6.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "           season        mnth     holiday     weekday  workingday  weathersit  \\\n",
       "count  365.000000  365.000000  365.000000  365.000000  365.000000  365.000000   \n",
       "mean     2.498630    6.526027    0.027397    3.008219    0.684932    1.421918   \n",
       "std      1.110946    3.452584    0.163462    2.006155    0.465181    0.571831   \n",
       "min      1.000000    1.000000    0.000000    0.000000    0.000000    1.000000   \n",
       "25%      2.000000    4.000000    0.000000    1.000000    0.000000    1.000000   \n",
       "50%      3.000000    7.000000    0.000000    3.000000    1.000000    1.000000   \n",
       "75%      3.000000   10.000000    0.000000    5.000000    1.000000    2.000000   \n",
       "max      4.000000   12.000000    1.000000    6.000000    1.000000    3.000000   \n",
       "\n",
       "             temp       atemp         hum   windspeed  \n",
       "count  365.000000  365.000000  365.000000  365.000000  \n",
       "mean     0.541158    0.508995    0.661866    0.348425  \n",
       "std      0.239983    0.221619    0.152950    0.158513  \n",
       "min      0.000000    0.000000    0.000000    0.000000  \n",
       "25%      0.336528    0.318819    0.553556    0.233350  \n",
       "50%      0.531667    0.516885    0.665810    0.339143  \n",
       "75%      0.756340    0.700041    0.763067    0.438458  \n",
       "max      1.000000    1.000000    1.000000    1.000000  "
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "WScaler = XTrainData[\"windspeed\"].apply(lambda x: (x - XTrainData[\"windspeed\"].min()) / (XTrainData[\"windspeed\"].max() - XTrainData[\"windspeed\"].min()))\n",
    "XTrainData = XTrainData.drop(\"windspeed\", axis=1)\n",
    "XTrainData[\"windspeed\"] = WScaler\n",
    "XTrainData.describe()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "单变量分布分析 \n",
    "    类别型特征由于规律非常明显，没有太多可分析的，这里只分析下weathersit\n",
    "    数据型特征全部分析一下"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f1658676908>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = plt.figure()\n",
    "sns.distplot(XTrainData.weathersit.values, bins=30, kde=True)\n",
    "plt.xlabel('weathersit histogram');"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nOlEWbgsAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f16507c64e0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = plt.figure()\n",
    "sns.distplot(XTrainData.temp.values, bins=30, kde=True)\n",
    "plt.xlabel('temp histogram');"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f16506cc908>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.scatter(range(XTrainData.shape[0]), XTrainData[\"temp\"].values,color='purple')\n",
    "plt.xlabel('temp discrete point');"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f16507c60b8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.scatter(range(XTrainData.shape[0]), XTrainData[\"atemp\"].values,color='purple')\n",
    "plt.xlabel('atemp discrete point');"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f16507c6a90>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.scatter(range(XTrainData.shape[0]), XTrainData[\"hum\"].values,color='purple')\n",
    "plt.xlabel('hum discrete point');\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f1650629c88>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.scatter(range(XTrainData.shape[0]), XTrainData[\"windspeed\"].values,color='purple')\n",
    "plt.xlabel('windspeed discrete point');"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "从上面图中可以看出：\n",
    "weathersit，temp，atemp并没有明显离群点，而hum与windspeed有个别点异常，所以将这些点去掉"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(363, 11)"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#删除离群点需将预测项中对应的值一起删掉，否则训练时会发生条目不一致问题\n",
    "XTrainData['cnt'] = YTrainData\n",
    "XTrainData = XTrainData[XTrainData.hum > 0.2]\n",
    "XTrainData.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "XTrainData = XTrainData[XTrainData.windspeed < 0.8]\n",
    "XTrainData.shape\n",
    "YTrainData = XTrainData['cnt'].values\n",
    "#移除预测项\n",
    "XTrainData = XTrainData.drop('cnt',axis=1)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "两两特征之间的相关性"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(10, 10)"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cols=XTrainData.columns \n",
    "data_corr = XTrainData.corr().abs()\n",
    "data_corr.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\njjmCPrddz4YNxWwsLqb3DX1Zs3ptJXtMn+LiYm644Q5GjBhKXl4eQ4YMZ968hfTteyPTps1i1Kix\nDB48nEGDHmTOnImsWrWGiy/efIdjwYLJNGnShAYN8jnrrB9y5pndmR/futO165l06XJJpkIrV3Fx\nMffd2p8/P9Wfenn1eOkfo1i0cDFX3XQZc4vmM/GVyXzr0AP4w6DfsPMuTTj+B8dw1U2X0a1zD9rt\n25Yb77wmDtmCoX99ivfnL8p0SCkVFxdzT5/7eWz4Q9TLq8fzw0bw/oJFXPvLK5ldOI9xYyZxcKcD\neXjw79i56c6ccMpxXHvzlZx1/AUADH1pIO07tGXHnRoxrnAEt//810we91aGo9rS9lKeG4s38tAd\nf+J3T95LvXr1+NfwMSxZ+B969b6EBUULeXPsFPY/dD/ufqwfjZs25qgffI9eN15Mr5OuAGDP1nvS\nvGVziqbMzHAk2+amO3/L1BkzWbPmc046pztXX9aDc8u8oMDVfdqaMTWSTiIMK9nFzL6QtBD4q5n1\nl7SEOBYdGGlmB8d1egONzayfpJIx4l8CYwjjxg+WdAvQHfiGMCb8J8DOwMuEC4KjgfeAHmb2paRO\nwENAU8KFxoNm9qikdsBfgBZAPvAPM7srzh8W0z4H3G5mjSuKtSaHtbjMG7787UxnIS2aNsyecd21\nad3Xmb+zkA7f2nXvyhPlgPXFX2c6C2nRKK9BprOQFk3ztnzIPRe9Ujgg01lIm/xm7SvugU2zXRt3\nqNU22up172ck3q1qnKeTpAISjfx088Z5bvHGeW7xxnlu8cZ5bvHGee7xxnl6bO2wFuecc8455zIm\nk687rE1Z3zg3syWEt7I455xzzjmX07K+ce6cc84551xZ2T40e2tl7//V65xzzjnn3HbGe86dc845\n51ydk8l3kdcm7zl3zjnnnHMuS3jPuXPOOeecq3MsR9/W4j3nzjnnnHPOZQnvOXfOOeecc3WOjzl3\nzjnnnHPO1SrvOXfOOeecc3WOv+fcOeecc845V6u859w555xzztU5/rYW55xzzjnnXK3ynnPnnHPO\nOVfn5OqYc2+cO+ecc865OidXG+c+rMU555xzzrks4T3nzjnnnHOuzsnNfnPvOXfOOeeccy5rKFfH\n69Rlkq40s4GZzkdt8zhzi8eZWzzO3OJx5p7tKdbtjfecZ6crM52BNPE4c4vHmVs8ztziceae7SnW\n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\nOeeccy5L/D9b0F75tvVBEgAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f1650629518>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.subplots(figsize=(13, 9))\n",
    "sns.heatmap(data_corr,annot=True)\n",
    "\n",
    "sns.heatmap(data_corr, mask=data_corr < 1, cbar=False)\n",
    "\n",
    "plt.savefig('bike_coor.png' )\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "从上图可看出：temp与atemp相关性非常大，这个很好理解，所以这两个特征其实只需要保留一个\n",
    "                           hum与weathersit相关性也比较大，因为下雨/大雾等天气会让温度增加"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "作业要求：4.岭回归,并选择最佳的正则参数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "RidgeCV(alphas=[0.01, 0.1, 1, 10, 100], cv=None, fit_intercept=True,\n",
       "    gcv_mode=None, normalize=False, scoring=None, store_cv_values=True)"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#设置超参数（正则参数）范围\n",
    "alphas = [ 0.01, 0.1, 1, 10,100]\n",
    "#生成一个RidgeCV实例\n",
    "ridge = RidgeCV(alphas=alphas, store_cv_values=True)  \n",
    "#模型训练\n",
    "ridge.fit(XTrainData, YTrainData)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "#预测\n",
    "Y_test_pred_ridge = ridge.predict(XTestData)\n",
    "Y_train_pred_ridge = ridge.predict(XTrainData)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The r2 score of RidgeCV on test is -0.809048170445\n",
      "The r2 score of RidgeCV on train is 0.756658659026\n"
     ]
    }
   ],
   "source": [
    "# 评估，使用r2_score评价模型在测试集和训练集上的性能\n",
    "print('The r2 score of RidgeCV on test is', r2_score(YTestData, Y_test_pred_ridge))\n",
    "print('The r2 score of RidgeCV on train is', r2_score(YTrainData, Y_train_pred_ridge))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "r2 score居然是负数，说明训练出的模型很不好\n",
    "感觉可能是训练集进行了归一化，测试集没有归一化，实验一下，把测试集也归一化试试"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>season</th>\n",
       "      <th>mnth</th>\n",
       "      <th>holiday</th>\n",
       "      <th>weekday</th>\n",
       "      <th>workingday</th>\n",
       "      <th>weathersit</th>\n",
       "      <th>temp</th>\n",
       "      <th>atemp</th>\n",
       "      <th>hum</th>\n",
       "      <th>windspeed</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>count</th>\n",
       "      <td>366.000000</td>\n",
       "      <td>366.000000</td>\n",
       "      <td>366.000000</td>\n",
       "      <td>366.000000</td>\n",
       "      <td>366.000000</td>\n",
       "      <td>366.000000</td>\n",
       "      <td>366.000000</td>\n",
       "      <td>366.000000</td>\n",
       "      <td>366.000000</td>\n",
       "      <td>366.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>mean</th>\n",
       "      <td>2.494536</td>\n",
       "      <td>6.513661</td>\n",
       "      <td>0.030055</td>\n",
       "      <td>2.986339</td>\n",
       "      <td>0.683060</td>\n",
       "      <td>1.368852</td>\n",
       "      <td>0.525853</td>\n",
       "      <td>0.540621</td>\n",
       "      <td>0.533664</td>\n",
       "      <td>0.361908</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>std</th>\n",
       "      <td>1.112185</td>\n",
       "      <td>3.455958</td>\n",
       "      <td>0.170971</td>\n",
       "      <td>2.006108</td>\n",
       "      <td>0.465921</td>\n",
       "      <td>0.516057</td>\n",
       "      <td>0.233519</td>\n",
       "      <td>0.222901</td>\n",
       "      <td>0.200058</td>\n",
       "      <td>0.198003</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>min</th>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>25%</th>\n",
       "      <td>2.000000</td>\n",
       "      <td>4.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.318508</td>\n",
       "      <td>0.354107</td>\n",
       "      <td>0.378571</td>\n",
       "      <td>0.220481</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>50%</th>\n",
       "      <td>2.500000</td>\n",
       "      <td>7.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>0.539227</td>\n",
       "      <td>0.563269</td>\n",
       "      <td>0.533230</td>\n",
       "      <td>0.324375</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>75%</th>\n",
       "      <td>3.000000</td>\n",
       "      <td>9.750000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>5.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>2.000000</td>\n",
       "      <td>0.724586</td>\n",
       "      <td>0.719495</td>\n",
       "      <td>0.681211</td>\n",
       "      <td>0.467307</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>max</th>\n",
       "      <td>4.000000</td>\n",
       "      <td>12.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>6.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>1.000000</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "           season        mnth     holiday     weekday  workingday  weathersit  \\\n",
       "count  366.000000  366.000000  366.000000  366.000000  366.000000  366.000000   \n",
       "mean     2.494536    6.513661    0.030055    2.986339    0.683060    1.368852   \n",
       "std      1.112185    3.455958    0.170971    2.006108    0.465921    0.516057   \n",
       "min      1.000000    1.000000    0.000000    0.000000    0.000000    1.000000   \n",
       "25%      2.000000    4.000000    0.000000    1.000000    0.000000    1.000000   \n",
       "50%      2.500000    7.000000    0.000000    3.000000    1.000000    1.000000   \n",
       "75%      3.000000    9.750000    0.000000    5.000000    1.000000    2.000000   \n",
       "max      4.000000   12.000000    1.000000    6.000000    1.000000    3.000000   \n",
       "\n",
       "             temp       atemp         hum   windspeed  \n",
       "count  366.000000  366.000000  366.000000  366.000000  \n",
       "mean     0.525853    0.540621    0.533664    0.361908  \n",
       "std      0.233519    0.222901    0.200058    0.198003  \n",
       "min      0.000000    0.000000    0.000000    0.000000  \n",
       "25%      0.318508    0.354107    0.378571    0.220481  \n",
       "50%      0.539227    0.563269    0.533230    0.324375  \n",
       "75%      0.724586    0.719495    0.681211    0.467307  \n",
       "max      1.000000    1.000000    1.000000    1.000000  "
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "TempScaler = XTestData[\"temp\"].apply(lambda x: (x - XTestData[\"temp\"].min()) / (XTestData[\"temp\"].max() - XTestData[\"temp\"].min()))\n",
    "XTestData = XTestData.drop(\"temp\", axis=1)\n",
    "XTestData[\"temp\"] = TempScaler\n",
    "AtempScaler = XTestData[\"atemp\"].apply(lambda x: (x - XTestData[\"atemp\"].min()) / (XTestData[\"atemp\"].max() - XTestData[\"atemp\"].min()))\n",
    "XTestData = XTestData.drop(\"atemp\", axis=1)\n",
    "XTestData[\"atemp\"] = AtempScaler\n",
    "HumScaler = XTestData[\"hum\"].apply(lambda x: (x - XTestData[\"hum\"].min()) / (XTestData[\"hum\"].max() - XTestData[\"hum\"].min()))\n",
    "XTestData = XTestData.drop(\"hum\", axis=1)\n",
    "XTestData[\"hum\"] = HumScaler\n",
    "WScaler = XTestData[\"windspeed\"].apply(lambda x: (x - XTestData[\"windspeed\"].min()) / (XTestData[\"windspeed\"].max() - XTestData[\"windspeed\"].min()))\n",
    "XTestData = XTestData.drop(\"windspeed\", axis=1)\n",
    "XTestData[\"windspeed\"] = WScaler\n",
    "XTestData.describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "Y_test_pred_ridge = ridge.predict(XTestData)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The r2 score of RidgeCV on test is -0.685298516132\n"
     ]
    }
   ],
   "source": [
    "print('The r2 score of RidgeCV on test is', r2_score(YTestData, Y_test_pred_ridge))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "结果与之前相比好了一点，说明数据归一化的话要同时归一化训练集和测试集才行，这时我们打印一下残差分布和预测值与真值散点图看看"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nSx/TaOVaevWLwBnUbsD7A7Ub9/6lbvrjwN9S69MngblbrGI68OWo/UXCZbRxCYT232Op28Tml34k\n9WURcSrw95n5lt6uRVLP80hb6sMiYreIODlqf689nNqp5Ht6uy5JvcMjbakPi4hB1E5DH0LtuukP\ngE9m5upeLUxSrzC0JUkqhKfHJUkqRI/+w5B99903R4wY0ZOblCSpz2lpaXk+M4d0drkeDe0RI0Yw\nb968ntykJEl9TkR0eKS+ep4elySpEIa2JEmFMLQlSSpEj17TliS1bu3atSxdupTXXnutt0tRAw0c\nOJDhw4fT1NTUkPUZ2pLUByxdupTdd9+dESNGENEr/5xODZaZvPDCCyxdupSRI0c2ZJ2eHpekPuC1\n115jn332MbB3IBHBPvvs09CzJ4a2JPURBvaOp9HvqaEtSVIhvKYtSX3RjBk9vr5+/foxevRo1q1b\nx8iRI/nWt77FXnvt1elNnXfeeXz6059m1KhRm7XfdNNNzJs3j2984xudXifAoEGDWLNmTYfmnThx\nIldffTXNzc2b2ubNm8ctt9zCNddc06Xt9wUeaUuSANh1112ZP38+CxcuZPDgwVx77bVdWs/111+/\nVWD3Bc3Nzd0e2OvXr+/W9RvakqStTJgwgWXLlm16fdVVV3H00UdzxBFHcMUVVwDwyiuvMHnyZI48\n8kgOP/xw7rjjDqB2lLtxyOpvfvObHHzwwbz73e/m4Ycf3rS+j33sY9x9992bXg8aNAiANWvWMGnS\nJI466ihGjx7NrFmztqpt+fLlHHfccYwZM4bDDz+cn/zkJx3apzlz5nDKKacAMGPGDM4991wmTpzI\nQQcdtFmY33rrrYwbN44xY8Zw4YUXbgri6dOn09zczGGHHbapD6A2RPeVV17Ju971Lu66664O1dJV\nnh6XJG1m/fr1zJ49m2nTpgFw//33s3jxYn7+85+TmZx22mnMnTuXlStXsv/++/PDH/4QgJdeemmz\n9SxfvpwrrriClpYW9txzT97znvcwduzYdrc9cOBA7rnnHvbYYw+ef/55xo8fz2mnnbbZDV3f/va3\nOemkk7j88stZv349f/zjH7u0n0888QQPPvggq1ev5pBDDmH69OksWbKEO+64g4cffpimpiY+/vGP\nc9ttt3HOOefwpS99icGDB7N+/XomTZrEggULOOKIIzbV/dBDD3Wpjs4wtCVJALz66quMGTOGp59+\nmne84x2ccMIJQC2077///k2Bu2bNGhYvXsyxxx7LZz/7WT7/+c9zyimncOyxx262vkceeYSJEycy\nZEjtn1mdeeaZ/OpXv2q3hszksssuY+7cueyyyy4sW7aMFStW8MY3vnHTPEcffTTnnnsua9eu5fTT\nT2fMmDFd2t/JkyczYMAABgwYwNChQ1mxYgWzZ8+mpaWFo48+elOfDB06FIA777yTmTNnsm7dOpYv\nX87jjz++KbTPPPPMLtXQWZ4elyQBf76m/cwzz/D6669vuqadmVx66aXMnz+f+fPns2TJEqZNm8bB\nBx9MS0sLo0eP5tJLL+XKK6/cap1t/clT//792bBhw6b1v/766wDcdtttrFy5kpaWFubPn89+++23\n1d85H3fcccydO5cDDjiAs88+m1tuuaVL+ztgwIBNz/v168e6devITKZOnbppX5988klmzJjBb37z\nG66++mpmz57NggULmDx58mZ17bbbbl2qobM80pbU93T0zulG32EtAPbcc0+uueYapkyZwvTp0znp\npJP4whe+wFlnncWgQYNYtmwZTU1NrFu3jsGDB/PRj36UQYMGcdNNN222nne+851cfPHFvPDCC+yx\nxx7cddddHHnkkUDtOnBLSwsf+tCHmDVrFmvXrgVqp9iHDh1KU1MTDz74IM88s/V/sHzmmWc44IAD\nOP/883nllVd49NFHOeeccxqy75MmTWLKlCl86lOfYujQoaxatYrVq1fz8ssvs9tuu7HnnnuyYsUK\n7rvvPiZOnNiQbXaGoS1JfVEv/0IyduxYjjzySG6//XbOPvtsFi1axIQJE4DaTWO33norS5Ys4XOf\n+xy77LILTU1NXHfddZutY9iwYcyYMYMJEyYwbNgwjjrqqE03dZ1//vlMmTKFcePGMWnSpE1Hqmed\ndRannnoqzc3NjBkzhre//e1b1TZnzhyuuuoqmpqaGDRoUJtH2pMnT9405veECRP4xCc+sc39HjVq\nFF/84hc58cQT2bBhA01NTVx77bWMHz+esWPHcthhh3HQQQdxzDHHdLwzGygys8c21tzcnBvvKJSk\nNu2ER9qLFi3i0EMP7e0y1A1ae28joiUzm9tYpE1e05YkqRCGtiRJhTC0JamP6MnLleoZjX5PDW1J\n6gMGDhzICy+8YHDvQDb+P+2BAwc2bJ3ePS5JfcDw4cNZunQpK1eu7O1S1EADBw5k+PDhDVufoS1J\n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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f16501fe438>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "f, ax = plt.subplots(figsize=(7, 5)) \n",
    "f.tight_layout() \n",
    "ax.hist(YTrainData - Y_train_pred_ridge,bins=40, label='Residuals Linear', color='r', alpha=.5); \n",
    "ax.set_title(\"Train Histogram of Residuals\") \n",
    "ax.legend(loc='best');"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f16503eab70>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "f, ax = plt.subplots(figsize=(7, 5)) \n",
    "f.tight_layout() \n",
    "ax.hist(YTestData - Y_test_pred_ridge,bins=40, label='Residuals Linear', color='r', alpha=.5); \n",
    "ax.set_title(\"Test Histogram of Residuals\") \n",
    "ax.legend(loc='best');"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "上图可以看出，训练值的残差分布与高斯分布近似，左侧噪声点多一些。\n",
    "而预测值的残差分布与高斯分布相差很大，说明训练出的模型是正常的，但是用于预测则不行"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f16503d2828>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(5, 5))\n",
    "plt.scatter(YTrainData, Y_train_pred_ridge)\n",
    "plt.plot([-4, 4], [-4, 4], '--k')  \n",
    "plt.axis('tight')\n",
    "plt.xlabel('True cnt')\n",
    "plt.ylabel('Predicted cnt')\n",
    "plt.tight_layout()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f16503176d8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(5, 5))\n",
    "plt.scatter(YTestData, Y_test_pred_ridge)\n",
    "plt.plot([-4, 4], [-4, 4], '--k')  \n",
    "plt.axis('tight')\n",
    "plt.xlabel('True cnt')\n",
    "plt.ylabel('Predicted cnt')\n",
    "plt.tight_layout()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "从上面两图可看出，训练集上的散点图较收敛，而预测集上的散点图有很多离群点，说明预测模型不佳"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>coef_ridge</th>\n",
       "      <th>columns</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>2002.479819</td>\n",
       "      <td>temp</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>1699.373702</td>\n",
       "      <td>atemp</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>367.304875</td>\n",
       "      <td>season</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>24.353836</td>\n",
       "      <td>weekday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>21.104416</td>\n",
       "      <td>workingday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1.742937</td>\n",
       "      <td>mnth</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>-270.534030</td>\n",
       "      <td>holiday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>-508.389520</td>\n",
       "      <td>weathersit</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>-673.509470</td>\n",
       "      <td>hum</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>-887.544181</td>\n",
       "      <td>windspeed</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    coef_ridge     columns\n",
       "6  2002.479819        temp\n",
       "7  1699.373702       atemp\n",
       "0   367.304875      season\n",
       "3    24.353836     weekday\n",
       "4    21.104416  workingday\n",
       "1     1.742937        mnth\n",
       "2  -270.534030     holiday\n",
       "5  -508.389520  weathersit\n",
       "8  -673.509470         hum\n",
       "9  -887.544181   windspeed"
      ]
     },
     "execution_count": 35,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#打印特征的权重系数\n",
    "fs = pd.DataFrame({\"columns\":list(cols), \"coef_ridge\":list((ridge.coef_.T))})\n",
    "fs.sort_values(by=['coef_ridge'],ascending=False)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "从上表看出，温度与出行次数正相关，天气，风速，温度负相关，月份基本无关，其它关系较少。常识推理上分析上面逻辑关系是成立的\n",
    "数值显示较大，分析是因为Y的值本身很大，又没有进行归一化、标准化导致\n",
    "但是为什么模型在训练集上拟合度很高，而在测试集上拟合度很低呢？\n",
    "从测试集的预测值与真实值对比图可以看出，预测值最坐标最大约在6000左右，而真实值最大已超过8000,说明2012年的骑行次数比2011看多很多。\n",
    "通过分析原始数据可以看出，我们选取的特征项都是些很普通的特征，每年情况都相似，而与共享单车骑行次数强相关的关键特征，如广告投放、价格、车辆投放数、注册人数等在数据集中都没有，所以通过上一年的数据推测第二年的数据比较难，模型不佳是可以理解的。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "结果可视化并选择最佳参数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f164dc1b860>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "alpha is: 1.0\n"
     ]
    }
   ],
   "source": [
    "mse_mean = np.mean(ridge.cv_values_, axis = 0)\n",
    "plt.plot(np.log10(alphas), mse_mean.reshape(len(alphas),1)) \n",
    "\n",
    "plt.xlabel('log(alpha)')\n",
    "plt.ylabel('mse')\n",
    "plt.show()\n",
    "\n",
    "print ('alpha is:', ridge.alpha_)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "最优正则参数要求mse最小，图中mse最小值是log(alpha)=0处，alpha=1是最佳参数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The r2 score of RidgeCV on test is -0.677004232194\n",
      "The r2 score of RidgeCV on train is 0.757620995506\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f165057f780>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "alpha is: 1.0\n"
     ]
    }
   ],
   "source": [
    "#测试用r2来评估模型\n",
    "#设置超参数（正则参数）范围\n",
    "alphas = [ 0.01, 0.1, 1, 10,100]\n",
    "#生成一个RidgeCV实例\n",
    "ridge2 = RidgeCV(alphas=alphas, scoring='r2',store_cv_values=True)  \n",
    "#ridge2 = RidgeCV(scoring='r2',store_cv_values=True)  \n",
    "#模型训练\n",
    "ridge2.fit(XTrainData, YTrainData)\n",
    "Y_test_pred_ridge2 = ridge2.predict(XTestData)\n",
    "Y_train_pred_ridge2 = ridge2.predict(XTrainData)\n",
    "print('The r2 score of RidgeCV on test is', r2_score(YTestData, Y_test_pred_ridge2))\n",
    "print('The r2 score of RidgeCV on train is', r2_score(YTrainData, Y_train_pred_ridge2))\n",
    "\n",
    "mse_mean = np.mean(ridge2.cv_values_, axis = 0)\n",
    "plt.plot(np.log10(alphas), mse_mean.reshape(len(alphas),1)) \n",
    "\n",
    "plt.xlabel('log(alpha)')\n",
    "plt.ylabel('mse')\n",
    "plt.show()\n",
    "\n",
    "print ('alpha is:', ridge.alpha_)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "作业要求：5.Lasso,并选择最佳的正则参数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The r2 score of LassoCV on test is -0.797963307369\n",
      "The r2 score of LassoCV on train is 0.757221366503\n"
     ]
    }
   ],
   "source": [
    "#alphas = [ 0.01, 0.1, 1, 10,100]\n",
    "\n",
    "#lasso = LassoCV(alphas=alphas,verbose=True)\n",
    "lasso = LassoCV()\n",
    "lasso.fit(XTrainData, YTrainData)  \n",
    "\n",
    "#测试\n",
    "Y_test_pred_lasso = lasso.predict(XTestData)\n",
    "Y_train_pred_lasso = lasso.predict(XTrainData)\n",
    "\n",
    "\n",
    "# 评估，使用r2_score评价模型在测试集和训练集上的性能\n",
    "print('The r2 score of LassoCV on test is', r2_score(YTestData, Y_test_pred_lasso))\n",
    "print('The r2 score of LassoCV on train is', r2_score(YTrainData, Y_train_pred_lasso))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "得到的r2 score与岭回归类似，也是训练集上拟合度好，预测集上拟合度差，原因之前已分析过\n",
    "设置verbose=True想把过程打印出来，发现没有打出什么东西\n",
    "再打印残差和离散点看看"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n7anA0uqyxjTauDZehf/p1G6i+wO1m+/+pW7+48DfUmvTJ4E5W2xiBvDlqH2T4FLaubzB1t9jqaFi\n80s5kkoWEacAf5+Zb+3rWiT1DnvUUsEiYueIOClq36ceQe008d19XZek3mOPWipYRAymdor5QGrX\nQX8AfDIzV/dpYZJ6jUEtSVLBPPUtSVLBevWPcuy11145atSo3tylJEnFmTdv3nOZObQzy/ZqUI8a\nNYq5c+f25i4lSSpORHR6xDxPfUuSVDCDWpKkghnUkiQVrFevUUuS2rZ27VqWLVvGq6++2telqIEG\nDRrEiBEjaGpq6vI2DGpJKsCyZcvYZZddGDVqFBF98kff1GCZyfPPP8+yZcsYPXp0l7fjqW9JKsCr\nr77KnnvuaUi/gUQEe+65Z7fPkhjUklQIQ/qNpxHvqUEtSVLBvEYtSSVqaen17Q0YMIBDDz2UdevW\nMXr0aL71rW+x++67b/Ouzj33XD796U8zZsyYzabfeOONzJ07l2984xvbvE2AwYMHs2bNmk4tO3Hi\nRK666iqam5s3TZs7dy4333wzV199dZf231fsUUuSANhpp52YP38+CxcuZMiQIVxzzTVd2s511133\nupAuQXNzc4+H9Pr16xu+TYNakvQ6EyZMYPny5ZteX3nllRx55JEcdthhXH755QC8/PLLTJ48mcMP\nP5xDDjmE22+/Haj1ZjcOF/3Nb36TAw44gPe85z08/PDDm7b38Y9/nLvuumvT68GDBwOwZs0aJk2a\nxBFHHMGhhx7KPffc87raWltbOfbYYxk7diyHHHIIP/nJTzp1TLNnz+bkk08GoKWlhXPOOYeJEyey\n//77bxbgt9xyC+PHj2fs2LGcf/75m8J3xowZNDc3c/DBB29qA6gNj33FFVfw7ne/mzvvvLNTtWwL\nT31Lkjazfv16Zs2axbRp0wC4//77Wbx4MT//+c/JTE499VTmzJnDypUr2WefffjhD38IwIsvvrjZ\ndlpbW7n88suZN28eu+22G+9973sZN27cVvc9aNAg7r77bnbddVeee+45jjrqKE499dTNbsr69re/\nzYknnshll13G+vXr+eMf/9il43ziiSd48MEHWb16NQceeCAzZsxgyZIl3H777Tz88MM0NTXxiU98\ngltvvZWzzz6bL33pSwwZMoT169czadIkFixYwGGHHbap7oceeqhLdXTEoJYkAfDKK68wduxYnn76\n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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f16502c82b0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "f, ax = plt.subplots(figsize=(7, 5)) \n",
    "f.tight_layout() \n",
    "ax.hist(YTrainData - Y_train_pred_lasso,bins=40, label='Residuals Linear', color='r', alpha=.5); \n",
    "ax.set_title(\"Train Histogram of Residuals\") \n",
    "ax.legend(loc='best');"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f16502f5fd0>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "f, ax = plt.subplots(figsize=(7, 5)) \n",
    "f.tight_layout() \n",
    "ax.hist(YTestData - Y_test_pred_lasso,bins=40, label='Residuals Linear', color='r', alpha=.5); \n",
    "ax.set_title(\"Train Histogram of Residuals\") \n",
    "ax.legend(loc='best');"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nxUFgH/W2AAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f165050ff28>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(5, 5))\n",
    "plt.scatter(YTrainData, Y_train_pred_lasso)\n",
    "plt.plot([-4, 4], [-4, 4], '--k')  \n",
    "plt.axis('tight')\n",
    "plt.xlabel('True cnt')\n",
    "plt.ylabel('Predicted cnt')\n",
    "plt.tight_layout()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f165080e860>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(5, 5))\n",
    "plt.scatter(YTestData, Y_test_pred_lasso)\n",
    "plt.plot([-4, 4], [-4, 4], '--k')  \n",
    "plt.axis('tight')\n",
    "plt.xlabel('True cnt')\n",
    "plt.ylabel('Predicted cnt')\n",
    "plt.tight_layout()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "从上面几幅图可以看出，lasso回归结果与岭回归结果大致相同，对于训练集两者基本一致，对于测试集ridge稍好一些，但两者都是负值，说明两个模型都不佳。我们将两者特征的权重系数打印出来比较下"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style>\n",
       "    .dataframe thead tr:only-child th {\n",
       "        text-align: right;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>coef_lasso</th>\n",
       "      <th>coef_ridge</th>\n",
       "      <th>columns</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>3630.620221</td>\n",
       "      <td>2002.479819</td>\n",
       "      <td>temp</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>0.000000</td>\n",
       "      <td>1699.373702</td>\n",
       "      <td>atemp</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>358.162292</td>\n",
       "      <td>367.304875</td>\n",
       "      <td>season</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>23.858804</td>\n",
       "      <td>24.353836</td>\n",
       "      <td>weekday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>12.497528</td>\n",
       "      <td>21.104416</td>\n",
       "      <td>workingday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>3.327775</td>\n",
       "      <td>1.742937</td>\n",
       "      <td>mnth</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>-243.322892</td>\n",
       "      <td>-270.534030</td>\n",
       "      <td>holiday</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>-506.759928</td>\n",
       "      <td>-508.389520</td>\n",
       "      <td>weathersit</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>-657.615665</td>\n",
       "      <td>-673.509470</td>\n",
       "      <td>hum</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>-959.944099</td>\n",
       "      <td>-887.544181</td>\n",
       "      <td>windspeed</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    coef_lasso   coef_ridge     columns\n",
       "6  3630.620221  2002.479819        temp\n",
       "7     0.000000  1699.373702       atemp\n",
       "0   358.162292   367.304875      season\n",
       "3    23.858804    24.353836     weekday\n",
       "4    12.497528    21.104416  workingday\n",
       "1     3.327775     1.742937        mnth\n",
       "2  -243.322892  -270.534030     holiday\n",
       "5  -506.759928  -508.389520  weathersit\n",
       "8  -657.615665  -673.509470         hum\n",
       "9  -959.944099  -887.544181   windspeed"
      ]
     },
     "execution_count": 42,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "fs = pd.DataFrame({\"columns\":list(cols), \"coef_ridge\":list((ridge.coef_.T)), \"coef_lasso\":list((lasso.coef_.T))})\n",
    "fs.sort_values(by=['coef_ridge'],ascending=False)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "可以看出，整体趋势上ridge与lasso系数是一致的，但是lasso的系统发散度更大\n",
    "另外atemp的系数为0,猜测这个可能由于atemp和temp相关性为1,导致lasso计算时atemp被丢弃。此处存疑，待老师解答。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f1650793a58>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "alpha is: 2.0579764658\n"
     ]
    }
   ],
   "source": [
    "mses = np.mean(lasso.mse_path_, axis = 1)\n",
    "plt.plot(np.log10(lasso.alphas_), mses) \n",
    "#plt.plot(np.log10(lasso.alphas_)*np.ones(3), [0.3, 0.4, 1.0])\n",
    "plt.xlabel('log(alpha)')\n",
    "plt.ylabel('mse')\n",
    "plt.show()    \n",
    "            \n",
    "print ('alpha is:', lasso.alpha_)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "计算最佳正则参数，与ridge结果有点差异，ridge回归最佳参数为0,而lasso最佳参数为2"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "尝试将alpha取值域加大试试"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The r2 score of LassoCV on test is -0.738473894841\n",
      "The r2 score of LassoCV on train is 0.75775887476\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "............./home/wangjian/android_tools/anaconda3/lib/python3.6/site-packages/sklearn/linear_model/coordinate_descent.py:491: ConvergenceWarning: Objective did not converge. You might want to increase the number of iterations. Fitting data with very small alpha may cause precision problems.\n",
      "  ConvergenceWarning)\n",
      "..[Parallel(n_jobs=1)]: Done   3 out of   3 | elapsed:    0.0s finished\n"
     ]
    }
   ],
   "source": [
    "alphas = [ 0.01, 0.1, 1, 10,100]\n",
    "\n",
    "lasso = LassoCV(alphas=alphas,verbose=True)\n",
    "#lasso = LassoCV()\n",
    "lasso.fit(XTrainData, YTrainData)  \n",
    "\n",
    "#测试\n",
    "Y_test_pred_lasso = lasso.predict(XTestData)\n",
    "Y_train_pred_lasso = lasso.predict(XTrainData)\n",
    "\n",
    "\n",
    "# 评估，使用r2_score评价模型在测试集和训练集上的性能\n",
    "print('The r2 score of LassoCV on test is', r2_score(YTestData, Y_test_pred_lasso))\n",
    "print('The r2 score of LassoCV on train is', r2_score(YTrainData, Y_train_pred_lasso))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7f165863deb8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "alpha is: 0.1\n"
     ]
    }
   ],
   "source": [
    "mses = np.mean(lasso.mse_path_, axis = 1)\n",
    "plt.plot(np.log10(lasso.alphas_), mses) \n",
    "#plt.plot(np.log10(lasso.alphas_)*np.ones(3), [0.3, 0.4, 1.0])\n",
    "plt.xlabel('log(alpha)')\n",
    "plt.ylabel('mse')\n",
    "plt.show()    \n",
    "            \n",
    "print ('alpha is:', lasso.alpha_)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "发现alpha取默认值和取[ 0.01, 0.1, 1, 10,100]，得到的最优参数和结果图相差很大，不太明白为什么"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "几个没搞懂的问题：\n",
    "1.归一化是单个特征做好还是整个数据做好，如何取舍\n",
    "2.归一化的算法，老师课件上写的是(x -MIN) / MAX，而网上查到的资料是(x -MIN) / (MAX-MIN) ,为什么\n",
    "3.此题中用lasso回归，atemp的特征系统算出来是0,为什么\n",
    "4.此题中用lasso回归中alpha取默认值和取[ 0.01, 0.1, 1, 10,100]，得到的最优参数和结果图相差很大，为什么"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
